其他
浅析 Redis 作为 JuiceFS 元数据引擎的优劣势
元数据管理一直是文件系统领域的核心话题,JuiceFS 开创性地将文件系统的元数据引擎「插件化」,让用户可以根据实际的使用场景自由选择适合的数据库作为 JuiceFS 的元数据引擎。
今天邀请到 Juicedata 技术专家高昌健,简要解析使用不同 Redis 架构作为元数据引擎的优劣势。无论你是社区的新用户还是进阶用户,想更全面了解 Redis 的适用场景,不要错过这篇文章,后续我们还会针对更多数据库进行分析,尽请期待。
概览
使用 Redis 作为元数据引擎的优势与限制
由于 Redis 完全使用内存来存储数据,因此在文件系统元数据请求的响应上是非常快的。同时在某些关键的元数据操作上(如 lookup),JuiceFS 还充分利用 Redis 提供的 Lua 脚本 Lua脚本[3]特性,提升这些关键操作的性能。在与 MySQL、TiKV、etcd 的元数据引擎评测[4]中,Redis 的平均元数据请求性能相比其它几个数据库快了 2-4 倍。因此 Redis 非常适合那些对于元数据请求性能有着极致要求的使用场景。
Redis 单机架构的问题与挑战
进阶:使用 Redis Cluster 作为元数据引擎
如果你熟悉 Redis 可能会问为什么不使用 Redis Cluster[8] 作为元数据引擎?
这背后的原因得从 JuiceFS 文件系统的元数据设计讲起。JuiceFS 的元数据有多种类型,如文件、目录、属性、文件锁等,这里每一种类型的元数据在 Redis 中都对应不同的 key。当执行某个元数据操作时可能会同时涉及多种类型的元数据,也就意味着需要同时修改多个 Redis 中的 key。为了保证文件系统元数据操作的原子性,JuiceFS 使用了 Redis 的 事务[9] 特性来同时修改多个 key,确保元数据的一致性。
再次进阶! 使用具有强一致性保证的 Redis 作为元数据引擎
不管是 Redis 还是 Redis Cluster 由于缺乏对于数据的强一致性保证,因此总是存在数据丢失的风险。Redis 公司(前 Redis Labs[13])其实也在尝试解决这个问题,于是有了 RedisRaft[14]开源项目,试图补齐 Redis 的这个短板(当然可能会牺牲掉一部分性能)。但是 RedisRaft 项目迟迟没有 GA,目前仍处于开发阶段。
本文作者:
高昌健,Juicedata 技术专家,参与建设 JuiceFS 开源社区的主力队员。十年互联网行业从业经历,曾在知乎、即刻、小红书多个团队担任架构师职位,专注于分布式系统、大数据、AI 领域的技术研究。
引用链接
[1]
DB-Engines:https://db-engines.com/en/ranking/key-value+store[2]
开源之初:https://juicefs.com/blog/cn/posts/juicefs-open-source/[3]
Lua 脚本:https://redis.io/docs/manual/programmability/eval-intro/[4]
元数据引擎性能评测:https://juicefs.com/docs/zh/community/metadata_engines_benchmark/[5]
副本:https://redis.io/docs/manual/replication/[6]
Redis Sentinel:https://redis.io/docs/manual/sentinel/[7]
CP 系统:https://en.wikipedia.org/wiki/CAP_theorem[8]
Redis Cluster:https://redis.io/docs/manual/scaling/[9]
事务:https://redis.io/docs/manual/transactions/[10]
hash tag:https://redis.io/docs/manual/scaling/#redis-cluster-data-sharding[11]
JuiceFS v1.0.0 Beta3:https://github.com/juicedata/juicefs/releases/tag/v1.0.0-beta3[12]
强一致性保证:https://redis.io/docs/manual/scaling/#redis-cluster-consistency-guarantees[13]
Redis Labs: https://redis.com/press/redis-labs-becomes-simply-redis/[14]
RedisRaft: https://github.com/RedisLabs/redisraft插播活动
就在本周六 !
关于 Redis 的使用
还有问题?
进群一起讨论吧
我们的合伙人
兼社群助手
苏锐全天在线
用户案例
AI for Science-深势科技 AI-云知声 理想汽车 知乎 在线设计平台:稿定科技 大搜车 环球易购 趣头条 Shopee
最佳实践
元数据备份性能提升40倍 CSI Driver
性能分析和调优 HDFS数据迁移
跨云数据搬迁 ClickHouse架构探索
MySQL备份验证性提升10倍
关于JuicedataJuicedata,杭州果汁数据科技有限公司是一家企业级存储服务供应商,开发了云原生分布式文件系统 JuiceFS,致力于在大数据时代下,为客户打造安全、高性能、自主可控的存储基础设施及服务。
2021年,JuiceFS 正式在GitHub上开源,已经获得 5.6 K star,欢迎开发者加入我们。 (github.com/juicedata/juicefs)
点击下方“阅读原文”访问官网